class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        n=len(nums)
        visited=[0]*n
        result=[]
        def dfs(route):
            if len(route)==n:
                result.append(route[:])
            else:
                for i in range(n):
                    if visited[i]==0:
                        visited[i]=1
                        route.append(nums[i])
                        dfs(route)
                        route.pop()
                        visited[i]=0
        dfs([])
        return result

'''
执行用时：
32 ms
, 在所有 Python3 提交中击败了
97.71%
的用户
内存消耗：
15.1 MB
, 在所有 Python3 提交中击败了
9.02%
的用户
'''